Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: track state hash_tree_root by bucket #6599

Merged
merged 2 commits into from
Mar 26, 2024

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Mar 26, 2024

Motivation

  • Right now we track avg time of state hash_tree_root(), it's so small and it hides the performance issue we have after epoch transition

Description

  • Also track state hash_tree_root() by bucket

part of #6598
Screenshot 2024-03-26 at 15 49 16

@twoeths twoeths requested a review from a team as a code owner March 26, 2024 08:49
Copy link

codecov bot commented Mar 26, 2024

Codecov Report

Merging #6599 (112ee25) into unstable (59a49ff) will not change coverage.
The diff coverage is n/a.

❗ Current head 112ee25 differs from pull request most recent head 2a5a7c8. Consider uploading reports for the commit 2a5a7c8 to get more accurate results

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6599   +/-   ##
=========================================
  Coverage     61.49%   61.49%           
=========================================
  Files           556      556           
  Lines         58895    58895           
  Branches       1856     1856           
=========================================
  Hits          36216    36216           
  Misses        22638    22638           
  Partials         41       41           

Copy link
Contributor

github-actions bot commented Mar 26, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 4546349 Previous: 59a49ff Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 394.52 us/op 702.22 us/op 0.56
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.724 us/op 52.244 us/op 0.99
BLS verify - blst-native 1.1228 ms/op 1.0730 ms/op 1.05
BLS verifyMultipleSignatures 3 - blst-native 2.4016 ms/op 2.2932 ms/op 1.05
BLS verifyMultipleSignatures 8 - blst-native 5.2474 ms/op 5.0727 ms/op 1.03
BLS verifyMultipleSignatures 32 - blst-native 19.413 ms/op 18.630 ms/op 1.04
BLS verifyMultipleSignatures 64 - blst-native 38.432 ms/op 37.374 ms/op 1.03
BLS verifyMultipleSignatures 128 - blst-native 75.725 ms/op 75.284 ms/op 1.01
BLS deserializing 10000 signatures 780.52 ms/op 790.72 ms/op 0.99
BLS deserializing 100000 signatures 8.4302 s/op 8.3216 s/op 1.01
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1705 ms/op 1.1389 ms/op 1.03
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.3028 ms/op 1.2908 ms/op 1.01
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.0661 ms/op 2.0310 ms/op 1.02
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.0221 ms/op 3.8367 ms/op 1.05
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.0841 ms/op 5.0126 ms/op 1.01
BLS aggregatePubkeys 32 - blst-native 23.066 us/op 22.717 us/op 1.02
BLS aggregatePubkeys 128 - blst-native 90.577 us/op 88.836 us/op 1.02
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 56.097 ms/op 49.227 ms/op 1.14
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 64.009 ms/op 43.485 ms/op 1.47
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 29.602 ms/op 26.989 ms/op 1.10
getSlashingsAndExits - default max 130.96 us/op 132.15 us/op 0.99
getSlashingsAndExits - 2k 483.43 us/op 589.16 us/op 0.82
proposeBlockBody type=full, size=empty 4.5077 ms/op 4.5829 ms/op 0.98
isKnown best case - 1 super set check 330.00 ns/op 625.00 ns/op 0.53
isKnown normal case - 2 super set checks 598.00 ns/op 656.00 ns/op 0.91
isKnown worse case - 16 super set checks 383.00 ns/op 645.00 ns/op 0.59
CheckpointStateCache - add get delete 6.9000 us/op 5.8740 us/op 1.17
validate api signedAggregateAndProof - struct 2.6922 ms/op 2.4744 ms/op 1.09
validate gossip signedAggregateAndProof - struct 2.5679 ms/op 2.4112 ms/op 1.06
validate gossip attestation - vc 640000 1.2257 ms/op 1.1962 ms/op 1.02
batch validate gossip attestation - vc 640000 - chunk 32 145.28 us/op 151.33 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 64 128.33 us/op 136.09 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 119.65 us/op 132.04 us/op 0.91
batch validate gossip attestation - vc 640000 - chunk 256 120.05 us/op 125.97 us/op 0.95
pickEth1Vote - no votes 958.78 us/op 888.51 us/op 1.08
pickEth1Vote - max votes 13.576 ms/op 7.6490 ms/op 1.77
pickEth1Vote - Eth1Data hashTreeRoot value x2048 23.460 ms/op 12.310 ms/op 1.91
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 31.611 ms/op 24.006 ms/op 1.32
pickEth1Vote - Eth1Data fastSerialize value x2048 442.57 us/op 433.08 us/op 1.02
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.2742 ms/op 5.8644 ms/op 1.07
bytes32 toHexString 506.00 ns/op 472.00 ns/op 1.07
bytes32 Buffer.toString(hex) 338.00 ns/op 325.00 ns/op 1.04
bytes32 Buffer.toString(hex) from Uint8Array 432.00 ns/op 437.00 ns/op 0.99
bytes32 Buffer.toString(hex) + 0x 345.00 ns/op 331.00 ns/op 1.04
Object access 1 prop 0.20400 ns/op 0.21000 ns/op 0.97
Map access 1 prop 0.20300 ns/op 0.19300 ns/op 1.05
Object get x1000 5.4160 ns/op 5.3700 ns/op 1.01
Map get x1000 0.80500 ns/op 0.79600 ns/op 1.01
Object set x1000 26.631 ns/op 25.441 ns/op 1.05
Map set x1000 18.242 ns/op 17.722 ns/op 1.03
Return object 10000 times 0.24220 ns/op 0.23720 ns/op 1.02
Throw Error 10000 times 2.8185 us/op 2.7777 us/op 1.01
fastMsgIdFn sha256 / 200 bytes 2.1410 us/op 2.0690 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 344.00 ns/op 328.00 ns/op 1.05
fastMsgIdFn h64 xxhash / 200 bytes 371.00 ns/op 367.00 ns/op 1.01
fastMsgIdFn sha256 / 1000 bytes 6.5150 us/op 6.3540 us/op 1.03
fastMsgIdFn h32 xxhash / 1000 bytes 480.00 ns/op 438.00 ns/op 1.10
fastMsgIdFn h64 xxhash / 1000 bytes 490.00 ns/op 417.00 ns/op 1.18
fastMsgIdFn sha256 / 10000 bytes 54.475 us/op 53.976 us/op 1.01
fastMsgIdFn h32 xxhash / 10000 bytes 1.9680 us/op 1.8990 us/op 1.04
fastMsgIdFn h64 xxhash / 10000 bytes 1.3060 us/op 1.2740 us/op 1.03
send data - 1000 256B messages 10.583 ms/op 12.425 ms/op 0.85
send data - 1000 512B messages 14.035 ms/op 14.897 ms/op 0.94
send data - 1000 1024B messages 25.992 ms/op 27.121 ms/op 0.96
send data - 1000 1200B messages 34.962 ms/op 31.509 ms/op 1.11
send data - 1000 2048B messages 38.765 ms/op 38.901 ms/op 1.00
send data - 1000 4096B messages 34.491 ms/op 33.472 ms/op 1.03
send data - 1000 16384B messages 95.463 ms/op 100.11 ms/op 0.95
send data - 1000 65536B messages 445.99 ms/op 381.11 ms/op 1.17
enrSubnets - fastDeserialize 64 bits 1.3100 us/op 1.0150 us/op 1.29
enrSubnets - ssz BitVector 64 bits 547.00 ns/op 456.00 ns/op 1.20
enrSubnets - fastDeserialize 4 bits 223.00 ns/op 204.00 ns/op 1.09
enrSubnets - ssz BitVector 4 bits 425.00 ns/op 446.00 ns/op 0.95
prioritizePeers score -10:0 att 32-0.1 sync 2-0 66.822 us/op 69.105 us/op 0.97
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 79.931 us/op 85.405 us/op 0.94
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 107.40 us/op 120.91 us/op 0.89
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 195.30 us/op 226.64 us/op 0.86
prioritizePeers score 0:0 att 64-1 sync 4-1 208.76 us/op 205.02 us/op 1.02
array of 16000 items push then shift 1.3709 us/op 1.2957 us/op 1.06
LinkedList of 16000 items push then shift 5.9820 ns/op 5.8340 ns/op 1.03
array of 16000 items push then pop 76.363 ns/op 51.289 ns/op 1.49
LinkedList of 16000 items push then pop 5.8800 ns/op 5.6360 ns/op 1.04
array of 24000 items push then shift 2.0141 us/op 1.8761 us/op 1.07
LinkedList of 24000 items push then shift 6.2830 ns/op 5.8270 ns/op 1.08
array of 24000 items push then pop 93.120 ns/op 80.226 ns/op 1.16
LinkedList of 24000 items push then pop 5.7220 ns/op 5.6510 ns/op 1.01
intersect bitArray bitLen 8 4.8830 ns/op 4.5510 ns/op 1.07
intersect array and set length 8 49.739 ns/op 47.854 ns/op 1.04
intersect bitArray bitLen 128 29.713 ns/op 28.601 ns/op 1.04
intersect array and set length 128 708.72 ns/op 676.70 ns/op 1.05
bitArray.getTrueBitIndexes() bitLen 128 1.3460 us/op 1.2680 us/op 1.06
bitArray.getTrueBitIndexes() bitLen 248 2.1960 us/op 2.0620 us/op 1.06
bitArray.getTrueBitIndexes() bitLen 512 3.8400 us/op 3.9410 us/op 0.97
Buffer.concat 32 items 847.00 ns/op 892.00 ns/op 0.95
Uint8Array.set 32 items 1.3740 us/op 1.8630 us/op 0.74
Set add up to 64 items then delete first 1.7719 us/op 1.7379 us/op 1.02
OrderedSet add up to 64 items then delete first 2.6939 us/op 2.6519 us/op 1.02
Set add up to 64 items then delete last 2.0088 us/op 1.9814 us/op 1.01
OrderedSet add up to 64 items then delete last 3.1337 us/op 2.9397 us/op 1.07
Set add up to 64 items then delete middle 2.0216 us/op 1.9803 us/op 1.02
OrderedSet add up to 64 items then delete middle 4.3313 us/op 4.1372 us/op 1.05
Set add up to 128 items then delete first 4.1231 us/op 3.9253 us/op 1.05
OrderedSet add up to 128 items then delete first 6.1692 us/op 6.1099 us/op 1.01
Set add up to 128 items then delete last 3.8110 us/op 3.7622 us/op 1.01
OrderedSet add up to 128 items then delete last 5.9898 us/op 5.6536 us/op 1.06
Set add up to 128 items then delete middle 3.8803 us/op 3.7523 us/op 1.03
OrderedSet add up to 128 items then delete middle 10.914 us/op 10.505 us/op 1.04
Set add up to 256 items then delete first 7.5607 us/op 7.6853 us/op 0.98
OrderedSet add up to 256 items then delete first 11.552 us/op 12.078 us/op 0.96
Set add up to 256 items then delete last 7.6106 us/op 7.3913 us/op 1.03
OrderedSet add up to 256 items then delete last 11.944 us/op 11.291 us/op 1.06
Set add up to 256 items then delete middle 8.5305 us/op 7.3991 us/op 1.15
OrderedSet add up to 256 items then delete middle 35.645 us/op 30.189 us/op 1.18
transfer serialized Status (84 B) 1.5220 us/op 1.3200 us/op 1.15
copy serialized Status (84 B) 1.2940 us/op 1.0740 us/op 1.20
transfer serialized SignedVoluntaryExit (112 B) 1.6070 us/op 1.4010 us/op 1.15
copy serialized SignedVoluntaryExit (112 B) 1.2970 us/op 1.1060 us/op 1.17
transfer serialized ProposerSlashing (416 B) 1.9900 us/op 2.0570 us/op 0.97
copy serialized ProposerSlashing (416 B) 1.9910 us/op 1.9890 us/op 1.00
transfer serialized Attestation (485 B) 2.0310 us/op 1.9540 us/op 1.04
copy serialized Attestation (485 B) 1.9300 us/op 1.8380 us/op 1.05
transfer serialized AttesterSlashing (33232 B) 1.9680 us/op 2.1090 us/op 0.93
copy serialized AttesterSlashing (33232 B) 6.2390 us/op 4.0480 us/op 1.54
transfer serialized Small SignedBeaconBlock (128000 B) 1.7830 us/op 1.7850 us/op 1.00
copy serialized Small SignedBeaconBlock (128000 B) 16.317 us/op 8.3590 us/op 1.95
transfer serialized Avg SignedBeaconBlock (200000 B) 1.9340 us/op 1.9330 us/op 1.00
copy serialized Avg SignedBeaconBlock (200000 B) 24.463 us/op 12.225 us/op 2.00
transfer serialized BlobsSidecar (524380 B) 2.2750 us/op 2.0250 us/op 1.12
copy serialized BlobsSidecar (524380 B) 83.697 us/op 171.27 us/op 0.49
transfer serialized Big SignedBeaconBlock (1000000 B) 2.6320 us/op 2.5140 us/op 1.05
copy serialized Big SignedBeaconBlock (1000000 B) 275.50 us/op 144.72 us/op 1.90
pass gossip attestations to forkchoice per slot 2.9329 ms/op 2.7276 ms/op 1.08
forkChoice updateHead vc 100000 bc 64 eq 0 520.28 us/op 489.19 us/op 1.06
forkChoice updateHead vc 600000 bc 64 eq 0 2.6097 ms/op 2.7366 ms/op 0.95
forkChoice updateHead vc 1000000 bc 64 eq 0 4.6931 ms/op 4.5229 ms/op 1.04
forkChoice updateHead vc 600000 bc 320 eq 0 2.6090 ms/op 2.5552 ms/op 1.02
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7534 ms/op 2.6651 ms/op 1.03
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4727 ms/op 3.3438 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 1000 9.9294 ms/op 9.6986 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 10000 9.9815 ms/op 9.7625 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 300000 12.093 ms/op 12.114 ms/op 1.00
computeDeltas 500000 validators 300 proto nodes 3.1187 ms/op 3.1287 ms/op 1.00
computeDeltas 500000 validators 1200 proto nodes 3.1061 ms/op 2.9631 ms/op 1.05
computeDeltas 500000 validators 7200 proto nodes 3.0659 ms/op 3.2632 ms/op 0.94
computeDeltas 750000 validators 300 proto nodes 7.7044 ms/op 4.8526 ms/op 1.59
computeDeltas 750000 validators 1200 proto nodes 8.1621 ms/op 4.7782 ms/op 1.71
computeDeltas 750000 validators 7200 proto nodes 8.4302 ms/op 4.8722 ms/op 1.73
computeDeltas 1400000 validators 300 proto nodes 15.209 ms/op 9.0137 ms/op 1.69
computeDeltas 1400000 validators 1200 proto nodes 14.179 ms/op 9.1248 ms/op 1.55
computeDeltas 1400000 validators 7200 proto nodes 14.248 ms/op 9.0139 ms/op 1.58
computeDeltas 2100000 validators 300 proto nodes 15.164 ms/op 12.666 ms/op 1.20
computeDeltas 2100000 validators 1200 proto nodes 13.295 ms/op 12.957 ms/op 1.03
computeDeltas 2100000 validators 7200 proto nodes 13.327 ms/op 13.313 ms/op 1.00
altair processAttestation - 250000 vs - 7PWei normalcase 1.7413 ms/op 1.6027 ms/op 1.09
altair processAttestation - 250000 vs - 7PWei worstcase 2.8389 ms/op 2.3175 ms/op 1.22
altair processAttestation - setStatus - 1/6 committees join 103.99 us/op 98.768 us/op 1.05
altair processAttestation - setStatus - 1/3 committees join 199.76 us/op 200.85 us/op 0.99
altair processAttestation - setStatus - 1/2 committees join 293.33 us/op 281.44 us/op 1.04
altair processAttestation - setStatus - 2/3 committees join 381.74 us/op 375.87 us/op 1.02
altair processAttestation - setStatus - 4/5 committees join 541.77 us/op 491.76 us/op 1.10
altair processAttestation - setStatus - 100% committees join 611.15 us/op 580.77 us/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase 9.3889 ms/op 7.2186 ms/op 1.30
altair processBlock - 250000 vs - 7PWei normalcase hashState 27.631 ms/op 30.114 ms/op 0.92
altair processBlock - 250000 vs - 7PWei worstcase 34.053 ms/op 30.940 ms/op 1.10
altair processBlock - 250000 vs - 7PWei worstcase hashState 84.290 ms/op 90.184 ms/op 0.93
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5344 ms/op 1.8863 ms/op 1.34
phase0 processBlock - 250000 vs - 7PWei worstcase 27.825 ms/op 23.704 ms/op 1.17
altair processEth1Data - 250000 vs - 7PWei normalcase 342.09 us/op 368.48 us/op 0.93
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 10.170 us/op 9.0520 us/op 1.12
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 53.635 us/op 53.013 us/op 1.01
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.7440 us/op 17.918 us/op 0.49
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 11.927 us/op 8.0010 us/op 1.49
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 135.78 us/op 101.56 us/op 1.34
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 799.90 us/op 1.0578 ms/op 0.76
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 935.17 us/op 1.0323 ms/op 0.91
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.0729 ms/op 1.4796 ms/op 0.73
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.5152 ms/op 2.3059 ms/op 1.09
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.0942 ms/op 1.5118 ms/op 1.39
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.5359 ms/op 3.4643 ms/op 1.31
Tree 40 250000 create 253.53 ms/op 249.83 ms/op 1.01
Tree 40 250000 get(125000) 114.06 ns/op 111.66 ns/op 1.02
Tree 40 250000 set(125000) 743.39 ns/op 748.71 ns/op 0.99
Tree 40 250000 toArray() 11.504 ms/op 9.1599 ms/op 1.26
Tree 40 250000 iterate all - toArray() + loop 22.030 ms/op 9.3845 ms/op 2.35
Tree 40 250000 iterate all - get(i) 54.063 ms/op 37.441 ms/op 1.44
MutableVector 250000 create 13.865 ms/op 11.616 ms/op 1.19
MutableVector 250000 get(125000) 5.8870 ns/op 5.6400 ns/op 1.04
MutableVector 250000 set(125000) 232.63 ns/op 204.44 ns/op 1.14
MutableVector 250000 toArray() 3.4153 ms/op 2.3744 ms/op 1.44
MutableVector 250000 iterate all - toArray() + loop 3.3444 ms/op 2.5834 ms/op 1.29
MutableVector 250000 iterate all - get(i) 1.3591 ms/op 1.2848 ms/op 1.06
Array 250000 create 2.4340 ms/op 2.3550 ms/op 1.03
Array 250000 clone - spread 1.2327 ms/op 1.1757 ms/op 1.05
Array 250000 get(125000) 1.0600 ns/op 1.0650 ns/op 1.00
Array 250000 set(125000) 1.3070 ns/op 1.2760 ns/op 1.02
Array 250000 iterate all - loop 153.20 us/op 152.42 us/op 1.01
effectiveBalanceIncrements clone Uint8Array 300000 27.761 us/op 14.953 us/op 1.86
effectiveBalanceIncrements clone MutableVector 300000 460.00 ns/op 447.00 ns/op 1.03
effectiveBalanceIncrements rw all Uint8Array 300000 185.07 us/op 182.38 us/op 1.01
effectiveBalanceIncrements rw all MutableVector 300000 94.940 ms/op 66.367 ms/op 1.43
phase0 afterProcessEpoch - 250000 vs - 7PWei 78.867 ms/op 76.436 ms/op 1.03
phase0 beforeProcessEpoch - 250000 vs - 7PWei 51.175 ms/op 42.630 ms/op 1.20
altair processEpoch - mainnet_e81889 439.48 ms/op 404.27 ms/op 1.09
mainnet_e81889 - altair beforeProcessEpoch 81.947 ms/op 67.733 ms/op 1.21
mainnet_e81889 - altair processJustificationAndFinalization 20.251 us/op 10.550 us/op 1.92
mainnet_e81889 - altair processInactivityUpdates 6.9338 ms/op 4.0237 ms/op 1.72
mainnet_e81889 - altair processRewardsAndPenalties 79.002 ms/op 63.182 ms/op 1.25
mainnet_e81889 - altair processRegistryUpdates 4.0650 us/op 1.5430 us/op 2.63
mainnet_e81889 - altair processSlashings 1.1340 us/op 546.00 ns/op 2.08
mainnet_e81889 - altair processEth1DataReset 1.0190 us/op 561.00 ns/op 1.82
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4898 ms/op 1.7538 ms/op 0.85
mainnet_e81889 - altair processSlashingsReset 6.1300 us/op 2.2460 us/op 2.73
mainnet_e81889 - altair processRandaoMixesReset 6.7830 us/op 2.5420 us/op 2.67
mainnet_e81889 - altair processHistoricalRootsUpdate 1.0650 us/op 683.00 ns/op 1.56
mainnet_e81889 - altair processParticipationFlagUpdates 3.5830 us/op 1.6330 us/op 2.19
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1450 us/op 524.00 ns/op 2.19
mainnet_e81889 - altair afterProcessEpoch 82.538 ms/op 81.552 ms/op 1.01
capella processEpoch - mainnet_e217614 1.8245 s/op 1.7112 s/op 1.07
mainnet_e217614 - capella beforeProcessEpoch 513.19 ms/op 387.16 ms/op 1.33
mainnet_e217614 - capella processJustificationAndFinalization 22.328 us/op 7.4610 us/op 2.99
mainnet_e217614 - capella processInactivityUpdates 25.678 ms/op 16.184 ms/op 1.59
mainnet_e217614 - capella processRewardsAndPenalties 579.38 ms/op 443.90 ms/op 1.31
mainnet_e217614 - capella processRegistryUpdates 21.834 us/op 24.923 us/op 0.88
mainnet_e217614 - capella processSlashings 1.0100 us/op 622.00 ns/op 1.62
mainnet_e217614 - capella processEth1DataReset 821.00 ns/op 666.00 ns/op 1.23
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.0648 ms/op 3.5063 ms/op 1.16
mainnet_e217614 - capella processSlashingsReset 6.0820 us/op 2.6990 us/op 2.25
mainnet_e217614 - capella processRandaoMixesReset 8.1890 us/op 5.3110 us/op 1.54
mainnet_e217614 - capella processHistoricalRootsUpdate 1.0120 us/op 474.00 ns/op 2.14
mainnet_e217614 - capella processParticipationFlagUpdates 2.9510 us/op 1.2230 us/op 2.41
mainnet_e217614 - capella afterProcessEpoch 227.47 ms/op 208.28 ms/op 1.09
phase0 processEpoch - mainnet_e58758 441.54 ms/op 367.95 ms/op 1.20
mainnet_e58758 - phase0 beforeProcessEpoch 140.89 ms/op 104.41 ms/op 1.35
mainnet_e58758 - phase0 processJustificationAndFinalization 21.941 us/op 14.108 us/op 1.56
mainnet_e58758 - phase0 processRewardsAndPenalties 60.355 ms/op 58.003 ms/op 1.04
mainnet_e58758 - phase0 processRegistryUpdates 17.949 us/op 8.5600 us/op 2.10
mainnet_e58758 - phase0 processSlashings 828.00 ns/op 565.00 ns/op 1.47
mainnet_e58758 - phase0 processEth1DataReset 900.00 ns/op 568.00 ns/op 1.58
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4906 ms/op 806.72 us/op 1.85
mainnet_e58758 - phase0 processSlashingsReset 4.3970 us/op 2.3460 us/op 1.87
mainnet_e58758 - phase0 processRandaoMixesReset 8.1530 us/op 3.8630 us/op 2.11
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.1970 us/op 588.00 ns/op 2.04
mainnet_e58758 - phase0 processParticipationRecordUpdates 9.9710 us/op 3.4800 us/op 2.87
mainnet_e58758 - phase0 afterProcessEpoch 76.430 ms/op 68.290 ms/op 1.12
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2987 ms/op 1.0074 ms/op 1.29
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.2649 ms/op 1.1336 ms/op 1.12
altair processInactivityUpdates - 250000 normalcase 27.593 ms/op 21.702 ms/op 1.27
altair processInactivityUpdates - 250000 worstcase 28.702 ms/op 25.116 ms/op 1.14
phase0 processRegistryUpdates - 250000 normalcase 14.033 us/op 10.234 us/op 1.37
phase0 processRegistryUpdates - 250000 badcase_full_deposits 433.85 us/op 407.61 us/op 1.06
phase0 processRegistryUpdates - 250000 worstcase 0.5 133.62 ms/op 108.79 ms/op 1.23
altair processRewardsAndPenalties - 250000 normalcase 68.794 ms/op 71.084 ms/op 0.97
altair processRewardsAndPenalties - 250000 worstcase 48.663 ms/op 58.030 ms/op 0.84
phase0 getAttestationDeltas - 250000 normalcase 6.0585 ms/op 5.6628 ms/op 1.07
phase0 getAttestationDeltas - 250000 worstcase 6.4395 ms/op 5.8396 ms/op 1.10
phase0 processSlashings - 250000 worstcase 90.846 us/op 89.160 us/op 1.02
altair processSyncCommitteeUpdates - 250000 120.67 ms/op 110.90 ms/op 1.09
BeaconState.hashTreeRoot - No change 402.00 ns/op 401.00 ns/op 1.00
BeaconState.hashTreeRoot - 1 full validator 92.623 us/op 95.098 us/op 0.97
BeaconState.hashTreeRoot - 32 full validator 1.0136 ms/op 1.1800 ms/op 0.86
BeaconState.hashTreeRoot - 512 full validator 19.503 ms/op 13.236 ms/op 1.47
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 142.29 us/op 202.53 us/op 0.70
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.0339 ms/op 2.5664 ms/op 1.18
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 34.677 ms/op 32.653 ms/op 1.06
BeaconState.hashTreeRoot - 1 balances 170.95 us/op 132.72 us/op 1.29
BeaconState.hashTreeRoot - 32 balances 1.3045 ms/op 1.2885 ms/op 1.01
BeaconState.hashTreeRoot - 512 balances 14.217 ms/op 13.275 ms/op 1.07
BeaconState.hashTreeRoot - 250000 balances 209.76 ms/op 220.65 ms/op 0.95
aggregationBits - 2048 els - zipIndexesInBitList 41.738 us/op 28.187 us/op 1.48
byteArrayEquals 32 67.284 ns/op 63.299 ns/op 1.06
Buffer.compare 32 42.233 ns/op 35.853 ns/op 1.18
byteArrayEquals 1024 1.8482 us/op 1.7071 us/op 1.08
Buffer.compare 1024 55.737 ns/op 43.227 ns/op 1.29
byteArrayEquals 16384 31.648 us/op 26.886 us/op 1.18
Buffer.compare 16384 207.28 ns/op 223.80 ns/op 0.93
byteArrayEquals 123687377 213.15 ms/op 207.56 ms/op 1.03
Buffer.compare 123687377 6.2914 ms/op 3.9913 ms/op 1.58
byteArrayEquals 32 - diff last byte 61.018 ns/op 61.177 ns/op 1.00
Buffer.compare 32 - diff last byte 36.166 ns/op 37.759 ns/op 0.96
byteArrayEquals 1024 - diff last byte 1.6954 us/op 1.7043 us/op 0.99
Buffer.compare 1024 - diff last byte 43.399 ns/op 46.105 ns/op 0.94
byteArrayEquals 16384 - diff last byte 27.339 us/op 27.228 us/op 1.00
Buffer.compare 16384 - diff last byte 221.66 ns/op 217.83 ns/op 1.02
byteArrayEquals 123687377 - diff last byte 211.24 ms/op 198.89 ms/op 1.06
Buffer.compare 123687377 - diff last byte 5.4558 ms/op 5.3550 ms/op 1.02
byteArrayEquals 32 - random bytes 4.7680 ns/op 4.5880 ns/op 1.04
Buffer.compare 32 - random bytes 40.352 ns/op 38.711 ns/op 1.04
byteArrayEquals 1024 - random bytes 4.5770 ns/op 4.2930 ns/op 1.07
Buffer.compare 1024 - random bytes 40.057 ns/op 34.313 ns/op 1.17
byteArrayEquals 16384 - random bytes 5.1090 ns/op 4.2980 ns/op 1.19
Buffer.compare 16384 - random bytes 36.851 ns/op 34.966 ns/op 1.05
byteArrayEquals 123687377 - random bytes 8.3600 ns/op 7.7700 ns/op 1.08
Buffer.compare 123687377 - random bytes 43.710 ns/op 38.470 ns/op 1.14
regular array get 100000 times 41.842 us/op 39.840 us/op 1.05
wrappedArray get 100000 times 41.816 us/op 39.454 us/op 1.06
arrayWithProxy get 100000 times 10.769 ms/op 9.9750 ms/op 1.08
ssz.Root.equals 58.853 ns/op 53.394 ns/op 1.10
byteArrayEquals 53.728 ns/op 51.928 ns/op 1.03
Buffer.compare 9.8510 ns/op 9.1380 ns/op 1.08
shuffle list - 16384 els 5.7033 ms/op 5.7688 ms/op 0.99
shuffle list - 250000 els 86.724 ms/op 81.578 ms/op 1.06
processSlot - 1 slots 11.336 us/op 11.472 us/op 0.99
processSlot - 32 slots 2.1617 ms/op 2.2436 ms/op 0.96
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 47.759 ms/op 52.021 ms/op 0.92
getCommitteeAssignments - req 1 vs - 250000 vc 2.3904 ms/op 2.3972 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 3.5258 ms/op 3.5289 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 3.8845 ms/op 3.8139 ms/op 1.02
findModifiedValidators - 10000 modified validators 464.13 ms/op 397.34 ms/op 1.17
findModifiedValidators - 1000 modified validators 398.62 ms/op 325.29 ms/op 1.23
findModifiedValidators - 100 modified validators 375.14 ms/op 316.90 ms/op 1.18
findModifiedValidators - 10 modified validators 372.70 ms/op 320.17 ms/op 1.16
findModifiedValidators - 1 modified validators 423.20 ms/op 290.97 ms/op 1.45
findModifiedValidators - no difference 429.52 ms/op 319.64 ms/op 1.34
compare ViewDUs 4.4256 s/op 3.9119 s/op 1.13
compare each validator Uint8Array 1.5154 s/op 1.5831 s/op 0.96
compare ViewDU to Uint8Array 1.0485 s/op 843.24 ms/op 1.24
migrate state 1000000 validators, 24 modified, 0 new 861.98 ms/op 712.52 ms/op 1.21
migrate state 1000000 validators, 1700 modified, 1000 new 1.2024 s/op 901.27 ms/op 1.33
migrate state 1000000 validators, 3400 modified, 2000 new 1.3180 s/op 1.1255 s/op 1.17
migrate state 1500000 validators, 24 modified, 0 new 730.69 ms/op 694.00 ms/op 1.05
migrate state 1500000 validators, 1700 modified, 1000 new 1.4912 s/op 983.19 ms/op 1.52
migrate state 1500000 validators, 3400 modified, 2000 new 1.4327 s/op 1.0847 s/op 1.32
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 8.8500 ns/op 4.4100 ns/op 2.01
state getBlockRootAtSlot - 250000 vs - 7PWei 635.91 ns/op 383.44 ns/op 1.66
computeProposers - vc 250000 6.8537 ms/op 5.6799 ms/op 1.21
computeEpochShuffling - vc 250000 104.76 ms/op 83.109 ms/op 1.26
getNextSyncCommittee - vc 250000 179.13 ms/op 96.041 ms/op 1.87
computeSigningRoot for AttestationData 24.525 us/op 29.922 us/op 0.82
hash AttestationData serialized data then Buffer.toString(base64) 1.7015 us/op 1.2464 us/op 1.37
toHexString serialized data 1.0132 us/op 789.90 ns/op 1.28
Buffer.toString(base64) 185.43 ns/op 158.06 ns/op 1.17

by benchmarkbot/action

Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The beacon job var got removed again, looks like the dashboard is no longer tracked by auto provisioning. I am looking into the issue

Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, the provisioning of this dashboard should now work as expected as well, thanks @Faithtosin for the help debugging this issue

@nflaig nflaig enabled auto-merge (squash) March 26, 2024 12:48
@nflaig nflaig merged commit ba57d4b into unstable Mar 26, 2024
17 of 20 checks passed
@nflaig nflaig deleted the tuyen/track_hash_tree_root_by_bucket branch March 26, 2024 12:55
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.18.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants